#ifndef __WIZ_UTILS_TICKER_OBJ_TIMESCALE_HPP__SHANHAOBO_19800429__
#define __WIZ_UTILS_TICKER_OBJ_TIMESCALE_HPP__SHANHAOBO_19800429__

#include "./WizUtilsTickerObject.hpp"

namespace Wiz
{
    namespace Ticker
    {
        namespace Object
        {
            namespace TimeScale
            {
                template<class TimeT>
                class WIZ_EXPORT Type : public ::Wiz::Ticker::Object::Type<TimeT>
                {
                    typedef Type                                    tThis;
                    typedef TimeT                                   tTime;
                    typedef ::Wiz::Ticker::Type<tTime>              tTicker;
                    typedef ::Wiz::Ticker::Object::Type<tTime>      tSuper;
                public:
                    Type(tTicker* TPtr);
                    virtual ~Type();

                    virtual ::Wiz::Void::Type DoTick(const tTime& DeltaTime);
                    ::Wiz::Void::Type SetTimeScale(::Wiz::Real::In TS);
                    ::Wiz::Real::Type GetTimeScale() const;
                protected:
                    ::Wiz::Real::Type       m_TimeScale;
                };
            } /// end of namespace TimeScale
        } /// end of namespace Object
    } /// end of namespace Ticker
} /// end of namespace Wiz

#endif /*__WIZ_UTILS_TICKER_OBJ_TIMESCALE_HPP__SHANHAOBO_19800429__*/

